/*
 * @(#)VandaBigDecimalConverter.java 1.0 2005-6-28
 * Copyright 2005 VandaGroup, Inc. All rights reserved.
 */
package com.vanda.util;
import java.math.BigDecimal;

import org.apache.commons.beanutils.ConversionException;
import org.apache.commons.beanutils.Converter;
/**
 * 类说明:
 * 用于 VandaBeanUtils 的 java.math.BigDecimal 转换器，将其他类型的值转换为 java.math.BigDecimal 的值。
 * 与标准的 BigDecimalConverter 的不同在于通过trim()去除首尾不可见字符。
 * @author wkf3915
 * @version 1.0 2005-6-28
 */
public class VandaBigDecimalConverter implements Converter {
	private Object defaultValue;
	private boolean useDefault;
	public VandaBigDecimalConverter() {
		defaultValue = null;
		useDefault = false;
	}
	public VandaBigDecimalConverter(Object defaultValue) {
		this.defaultValue = defaultValue;
		useDefault = true;
	}
	public Object convert(Class type, Object value) {
		if (value == null) {
			if (useDefault)
				return defaultValue;
			else
				throw new ConversionException("No value specified");
		}
		if (value instanceof BigDecimal) {
			return (value);
		}
		try {
			return (new BigDecimal(value.toString().trim()));
		} catch (Exception e) {
			if (useDefault) {
				return (defaultValue);
			} else {
				throw new ConversionException(e);
			}
		}
	}
}